{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import tensorflow as tf\n",
    "from tensorflow.keras import layers\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "embedding = tf.constant(\n",
    "    [\n",
    "        [0.21,0.41,0.51,0.11],\n",
    "        [0.22,0.42,0.52,0.12],\n",
    "        [0.23,0.43,0.53,0.13],\n",
    "        [0.24,0.44,0.54,0.14]\n",
    "    ],dtype=tf.float32)\n",
    "\n",
    "feature_batch = tf.constant([2,3,1,0])\n",
    "\n",
    "get_embedding1 = tf.nn.embedding_lookup(embedding,feature_batch)\n",
    "\n",
    "feature_batch_one_hot = tf.one_hot(feature_batch,depth=4)\n",
    "\n",
    "get_embedding2 = tf.matmul(feature_batch_one_hot,embedding)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[0.23000000417232513, 0.4300000071525574, 0.5299999713897705, 0.12999999523162842], [0.23999999463558197, 0.4399999976158142, 0.5400000214576721, 0.14000000059604645], [0.2199999988079071, 0.41999998688697815, 0.5199999809265137, 0.11999999731779099], [0.20999999344348907, 0.4099999964237213, 0.5099999904632568, 0.10999999940395355]]\n"
     ]
    }
   ],
   "source": [
    "print(get_embedding1.numpy().tolist())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "num_classes=10\n",
    "\n",
    "input_x = tf.keras.Input(shape=(None,),)\n",
    "\n",
    "embedding_x = layers.Embedding(num_classes, 10)(input_x)\n",
    "hidden1 = layers.Dense(50,activation='relu')(embedding_x)\n",
    "output = layers.Dense(2,activation='softmax')(hidden1)\n",
    "\n",
    "x_train = [2,3,4,5,8,1,6,7,2,3,4,5,8,1,6,7,2,3,4,5,8,1,6,7,2,3,4,5,8,1,6,7,2,3,4,5,8,1,6,7,2,3,4,5,8,1,6,7,2,3,4,5,8,1,6,7,2,3,4,5,8,1,6,7]\n",
    "y_train = [0,1,0,1,1,0,0,1,0,1,0,1,1,0,0,1,0,1,0,1,1,0,0,1,0,1,0,1,1,0,0,1,0,1,0,1,1,0,0,1,0,1,0,1,1,0,0,1,0,1,0,1,1,0,0,1,0,1,0,1,1,0,0,1]\n",
    "\n",
    "model2 = tf.keras.Model(inputs = input_x,outputs = output)\n",
    "\n",
    "model2.compile(optimizer=tf.keras.optimizers.Adam(0.001),\n",
    "              #loss=tf.keras.losses.SparseCategoricalCrossentropy(),\n",
    "               loss='sparse_categorical_crossentropy',\n",
    "              metrics=['accuracy'])\n",
    "history = model2.fit(x_train, y_train, batch_size=4, epochs=1000, verbose=0)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "tf2",
   "language": "python",
   "name": "tf2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
